package dao;

import entity.Cart;

import java.lang.reflect.InvocationTargetException;
import java.math.BigDecimal;
import java.util.List;

/**
 * @version 1.0
 * @Author: xxf
 * @CreateDate: 2020/10/6 18:38
 */
public interface CartDao {
    /**
     * 判断购物车是否存在
     * @param pid   商品id
     * @param uid   用户id
     * @return      返回购物车对象
     */
    Cart hasCart(int pid, int uid) throws InvocationTargetException, IllegalAccessException;

    /**
     * 更新购物车中的商品数量
     * @param cart
     */
    void updateCart(Cart cart);

    /**
     * 创建一个购物车对象给数据库插入数据
     * @param cart
     */
    void insertCart(Cart cart);

    /**
     * 通过uid查询购物车商品
     * @param uid
     * @return
     */
    List<Cart> findCartByUid(int uid) throws InvocationTargetException, IllegalAccessException;

    /**
     * 删除购物车单条数据
     * @param cid
     */
    void deleteCartByCid(int cid);

    /**
     * 修改购物车
     * @param cid 购物车id
     * @param cnum 购物车数量
     * @param count 购物车小计
     */
    void updateCartByCid(int cid, int cnum, BigDecimal count);

    /**
     * 根据用户id清空购物车所有商品
     * @param uid
     */
    void deleteCartByUid(int uid);
}
